package com.ego.rabbitmq;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;


/**
 * 一定要保证当前项目被其他项目依赖时，其他项目的启动器能扫描到这个类。
 * 发送消息
 */
@Component
public class SendMessage {
    @Autowired
    private AmqpTemplate amqpTemplate;

    /**
     * 异步发送消息方法
     * @param exchange 交换器  接受消息发送到队列
     * @param routingKey 路由key 绑定交换器和队列
     * @param message 发送消息，任意数据
     */
    public void asyncSenderMessage(String exchange,String routingKey,Object message){
        amqpTemplate.convertAndSend(exchange,routingKey,message);
    }




    /**
     * 同步发送消息方法
     * @param exchange 交换器  接受消息发送到队列
     * @param routingKey 路由key 绑定交换器和队列
     * @param message 发送消息，任意数据
     */
    public Object syncSenderMessage(String exchange,String routingKey,Object message){
        Object result = amqpTemplate.convertSendAndReceive(exchange, routingKey, message);
        return result;
    }
}
